iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0

昨天改好base的共用元件
現在最裡面是control
這樣base元件上面可以新增檢核的部分
那先在base-element裡面寫一個getError()
去取出control裡面的error
並且去解析error裡面的訊息決定顯示的內容

getError()
    {
        let errors = this.control.errors;
        if (errors)
        {
            if (errors['required'])
                return '必填';
            else if (errors['maxlength'])
                return '長度不可超過' + errors['maxlength']['requiredLength'];
            else
                return '';
        } else
        {
            return '';
        }
    }

我們這邊目前寫了必填跟長度檢核
之後如果還有其他的要寫 再加上去
或者可以想其他機制去讓這個地方變動態

html面板上現在增加一區顯示錯誤訊息的span
當getError有值的時候顯示錯誤訊息
另外增加如果有錯誤就紅框
以下已base-text為例

<div>
  <input
    type="text"
    placeholder="{{ fieldSetting.placeholder || '文字輸入框' }}"
    [formControl]="control"
    [ngClass]="{ 'is-invalid': control.invalid && control.touched }"
  />
  <span *ngIf="getError()" style="color: red">{{ getError() }}</span>
</div>

檢核的部分初步架構就是這樣
看來還有一些部分可以擴充
就是錯誤訊息如果想要客製
那可能需要再另外寫到設定檔裡
還有如果是使用自定義的檢核
那要怎麼套用
另外明天會先來寫分頁以及表單檢核阻止換頁這件事
今天原本還想多補完一點程式
不過回家的路上碰到一點事情
沒甚麼心情繼續改程式
我們就明天繼續吧
今日程式:day13


上一篇
第12天 表單檢核Validator(上)
下一篇
第14天 分頁規則
系列文
簡單的事 最困難-Angular動態Form元件14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言